package com.example.demo.jucConcurrent.ThreadPoolExecutor详解;

/**
 * 线程池对线程进行统一的分配,调休和监控
 *
 * 降低资源消耗,(线程无限制的创建,使用完毕后销毁)
 * 提高相应速度(无须创建线程)
 * 提高线程的可管理性
 *
 * 问题:为什么线程池不允许使用Executors取创建?推荐方式
 * 线程池不允许使用Executor去创建,而是通过ThreadPoolExecutor方式
 * 线程池不允许使用Executor取创建,而是通过ThreadPoolExecutor的方式取创建,这样的处理方式让同学们更加明确的
 * 线程池的运行规则,规避资源耗尽的风险,
 *
 * 配置线程池要考虑的因素
 *
 * 从任务的优先级,任务的执行的长短,任务的性质(CPU密集/io密集),任务的依赖关系,并且尽可能使用不同的规模的线程池分开处理
 *
 * cpu密集型:尽可能减少的线程 Ncpu+1
 * Io密集型:尽可能多的线程Ncpu*2,比如数据库线程池
 * 混合型:cpu密集型的任务与Io密集型任务的执行时间的差别较小,拆分为两个线程池,否则没有必须炒粉
 */
public class demo01 {
}
